package 刷题10月.位运算;
//整数的二进制表达式中有多少个1
public class Solution1 {
    /**
     *
     * @param n int整型 the n
     * @return int整型
     */
    //给定一个32位的整数n，返回该整数二进制形式1的个数
    public static int count (int n) {
        // write code here
        int res=0;
        int i=32;
        while(i-->0){
            res+=(n&1);
            n>>=1;
        }
        return res;
    }
    public static int count1 (int n) {
        // write code here
        int count=0;
        while(n!=0){
            n&=n-1;
            count++;
        }
        return count;
    }

    public static void main(String[] args) {
        System.out.println(count1(1));
        System.out.println(count1(-2));
    }
}
